AWK কমান্ডের মৌলিক কাঠামো সরল এবং ব্যবহার সহজ। AWK কমান্ড সাধারণত নিম্নলিখিত ফরম্যাটে লেখা হয়:
awk 'pattern { action }' filenameএখানে:
- pattern: এটি একটি শর্ত যা AWK নির্দিষ্ট করবে কিভাবে এবং কোন লাইনে
actionকার্যকর হবে। এটি নিয়মিত এক্সপ্রেশন বা সাধারণ শর্ত হতে পারে। - action: এটি সেই কার্যক্রম যা শর্তটি সত্য হলে সম্পাদিত হবে। এখানে আপনি বিভিন্ন AWK ফাংশন এবং কমান্ড ব্যবহার করতে পারেন।
- filename: এটি সেই ফাইলের নাম যা AWK প্রোগ্রামটি প্রক্রিয়া করবে। এটি সাধারণত টেক্সট ফাইল হয়।
উদাহরণ
সরল AWK কমান্ড:
awk '{print $1}' filename.txtএই কমান্ডটি
filename.txtফাইলের প্রথম কলামটি প্রিন্ট করবে।শর্তযুক্ত AWK কমান্ড:
awk '$2 > 50 {print $1, $2}' filename.txtএই কমান্ডটি
filename.txtফাইলের দ্বিতীয় কলামের মান 50 এর বেশি হলে প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করবে।ফাইলের নির্দিষ্ট প্যাটার্ন খোঁজা:
awk '/pattern/ {print}' filename.txtএই কমান্ডটি
filename.txtফাইলের মধ্যে নির্দিষ্টpatternখুঁজে বের করে সেই লাইনগুলো প্রিন্ট করবে।
AWK এর বিল্ট-ইন ফাংশন
AWK কিছু বিল্ট-ইন ফাংশন সরবরাহ করে, যেমন:
length: একটি স্ট্রিংয়ের দৈর্ঘ্য ফেরত দেয়।
awk '{print length($0)}' filename.txttoupper: একটি স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করে।
awk '{print toupper($1)}' filename.txttolower: একটি স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করে।
awk '{print tolower($1)}' filename.txt
সারাংশ
AWK কমান্ডের মৌলিক কাঠামো একটি প্রাথমিক ধারণা প্রদান করে যা ব্যবহারকারীদের জন্য টেক্সট ফাইলের উপর বিভিন্ন কার্যক্রম সম্পাদন করতে সহায়ক। এর সরলতা এবং শক্তিশালী কার্যকারিতা AWK কে ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য একটি জনপ্রিয় টুল করে তোলে। AWK ব্যবহার করে ব্যবহারকারীরা তাদের ডেটা বিশ্লেষণ ও পরিচালনায় দক্ষতা অর্জন করতে পারেন।
AWK একটি টেক্সট প্রসেসিং ভাষা, যা বিশেষ করে ডেটা ফিল্টারিং এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এর ব্যাসিক সিনট্যাক্স এবং কাঠামো সহজ, যা ব্যবহারকারীদের টেক্সট ফাইলের উপর বিভিন্ন অপারেশন করতে সহায়তা করে। এখানে AWK এর ব্যাসিক সিনট্যাক্স, ইনপুট ফাইল, এবং আউটপুট সম্পর্কিত বিস্তারিত তথ্য দেওয়া হলো।
AWK এর ব্যাসিক সিনট্যাক্স
AWK কমান্ড সাধারণত নিম্নলিখিত গঠনের হয়:
awk 'pattern { action }' input_file- pattern: এটি একটি শর্ত যা সত্য হলে
{ action }ব্লকটি কার্যকর হয়। শর্তটি প্রায়শই একটি নিয়মিত এক্সপ্রেশন হিসেবে ব্যবহার করা হয়। - action: এটি একটি বা একাধিক AWK কমান্ড, যা pattern সত্য হলে কার্যকর হয়।
- input_file: এটি সেই ফাইলের নাম যা AWK দ্বারা প্রসেস করা হবে।
AWK একটি কমান্ড লাইন টুল হিসেবে কাজ করে এবং আউটপুট সাধারণত টার্মিনালে প্রদর্শিত হয়।
প্রোগ্রাম উদাহরণ
AWK প্রোগ্রাম লিখতে, আপনি নিচের উদাহরণটি দেখতে পারেন:
awk '{ print $1 }' data.txtএই কমান্ডটি data.txt ফাইলের প্রথম কলামটি প্রিন্ট করবে। এখানে $1 প্রথম কলাম নির্দেশ করে।
ইনপুট ফাইল
AWK সাধারণত টেক্সট ফাইলের সাথে কাজ করে, যা রেকর্ড এবং ফিল্ডে বিভক্ত থাকে। প্রতিটি রেকর্ড সাধারণত একটি লাইনে থাকে এবং ফিল্ডগুলি সাধারণত স্পেস বা ট্যাব দ্বারা পৃথক করা হয়। একটি ইনপুট ফাইল উদাহরণ হতে পারে:
Alice 25 Engineer
Bob 30 Designer
Charlie 28 Managerএখানে, প্রতিটি লাইনে তিনটি ফিল্ড আছে: নাম, বয়স, এবং পেশা।
আউটপুট
AWK আউটপুট সাধারণত টার্মিনালে দেখা যায়, কিন্তু এটি একটি ফাইলেও লেখা যেতে পারে। উদাহরণস্বরূপ, প্রথম কলাম এবং তৃতীয় কলাম প্রিন্ট করতে:
awk '{ print $1, $3 }' data.txtএটি আউটপুট করবে:
Alice Engineer
Bob Designer
Charlie Managerএছাড়াও, AWK ব্যবহার করে আউটপুট একটি ফাইলে সংরক্ষণ করতে পারেন:
awk '{ print $1, $3 }' data.txt > output.txtএই কমান্ডটি output.txt নামে একটি নতুন ফাইলে ফলাফল সংরক্ষণ করবে।
সারসংক্ষেপ
AWK এর ব্যাসিক সিনট্যাক্স সহজ এবং সোজা। এর মাধ্যমে ব্যবহারকারীরা টেক্সট ফাইলের মধ্যে সহজেই ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের কাজ করতে পারেন। AWK এর ব্যবহারকারী ইনপুট ফাইল থেকে ডেটা এক্সট্র্যাক্ট করে বিভিন্ন আউটপুট তৈরি করতে সক্ষম, যা ডেটা ম্যানিপুলেশনকে অনেক বেশি কার্যকরী করে তোলে। AWK এর এই বৈশিষ্ট্যগুলি এটিকে প্রোগ্রামারদের এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের মধ্যে একটি জনপ্রিয় টুল করে তোলে।
AWK একটি শক্তিশালী টুল যা টেক্সট প্রসেসিং এবং ডেটা বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি বিভিন্ন স্ক্রিপ্ট এবং কমান্ড লাইনে কার্যকরীভাবে ব্যবহার করা যায়। নিচে AWK স্ক্রিপ্ট এবং কমান্ড লাইনে এর ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হয়েছে।
AWK স্ক্রিপ্ট
AWK স্ক্রিপ্ট সাধারণত ফাইলের মধ্যে লেখা হয় এবং তারপর টার্মিনাল থেকে চালানো হয়। AWK স্ক্রিপ্ট লেখার সময় সাধারণ সিনট্যাক্স এই রকম:
awk 'pattern { action }' filename- pattern: এটি একটি শর্ত যা সত্য হলে
actionকার্যকর হয়। - action: এটি সেই কার্যক্রম যা
patternমিলে গেলে কার্যকর হবে।
উদাহরণ AWK স্ক্রিপ্ট
সাধারণ স্ক্রিপ্ট:
একটি ফাইল থেকে দ্বিতীয় কলাম প্রদর্শন করা:
awk '{print $2}' data.txtশর্তাধীন স্ক্রিপ্ট:
তৃতীয় কলামের মান 50 এর বেশি হলে প্রথম কলাম প্রদর্শন করা:
awk '$3 > 50 {print $1}' data.txtযোগফল বের করা:
দ্বিতীয় কলামের মানের যোগফল বের করা:
awk '{sum += $2} END {print sum}' data.txtফাইলের নির্দিষ্ট লাইন নম্বর দেখানো:
দ্বিতীয় লাইনে থাকা ডেটা দেখানো:
awk 'NR==2 {print}' data.txt
কমান্ড লাইনে AWK এর ব্যবহার
AWK সাধারণত টার্মিনালে সরাসরি ব্যবহার করা হয়। এর কিছু জনপ্রিয় কমান্ড লাইনের উদাহরণ:
প্যাটার্ন খোঁজা:
একটি টেক্সট ফাইলে নির্দিষ্ট প্যাটার্ন খুঁজে বের করা:
awk '/pattern/ {print}' filename.txtকলাম প্রিন্ট করা:
প্রথম এবং তৃতীয় কলাম প্রিন্ট করা:
awk '{print $1, $3}' filename.txtনির্দিষ্ট ডেলিমিটার দিয়ে কাজ করা:
কমা (
,) ডেলিমিটারের সাথে কাজ করা:awk -F, '{print $1, $2}' data.csvগণনা করা:
একটি ফাইলের মধ্যে সব সংখ্যা গোনা:
awk '{count++} END {print count}' filename.txtগড় বের করা:
একটি কলামের গড় বের করা:
awk '{sum += $1; count++} END {print sum/count}' data.txt
AWK স্ক্রিপ্ট এবং কমান্ড লাইনে ব্যবহার করার জন্য অসংখ্য ক্ষমতা প্রদান করে, যা টেক্সট ফাইল এবং ডেটাবেসের সাথে কাজকে অনেক সহজ করে তোলে। এটি ব্যবহার করে ব্যবহারকারীরা দ্রুত এবং কার্যকরভাবে ডেটা বিশ্লেষণ এবং প্রক্রিয়া করতে পারেন, যা বিভিন্ন ক্ষেত্রে বিশেষ করে সিস্টেম প্রশাসন এবং ডেটা বিশ্লেষণের জন্য অত্যন্ত কার্যকর। AWK এর এই ক্ষমতা এটিকে প্রোগ্রামারদের এবং ডেটা বিশ্লেষকদের মধ্যে একটি জনপ্রিয় টুল হিসেবে প্রতিষ্ঠিত করেছে।
AWK প্রোগ্রামিং ভাষায় কিছু বিল্ট-ইন ভেরিয়েবল রয়েছে, যা বিশেষ উদ্দেশ্যে ব্যবহৃত হয়। এই ভেরিয়েবলগুলি AWK এর কার্যকারিতা বাড়াতে সহায়ক এবং বিভিন্ন কার্যক্রমের জন্য প্রস্তুত করা হয়। নিচে AWK এর কিছু গুরুত্বপূর্ণ বিল্ট-ইন ভেরিয়েবল এবং তাদের কাজ সম্পর্কে আলোচনা করা হলো:
১. $0
- বর্ণনা: বর্তমান রেকর্ড (লাইন) সম্পূর্ণভাবে নির্দেশ করে।
- ব্যবহার:
$0ব্যবহার করে পুরো লাইনের ডেটা অ্যাক্সেস করা যায়। উদাহরণ:
awk '{print $0}' filename.txt
২. $1, $2, ..., $n
- বর্ণনা: বর্তমান রেকর্ডের বিভিন্ন ফিল্ডকে নির্দেশ করে।
$1প্রথম ফিল্ড,$2দ্বিতীয় ফিল্ড, এবং এভাবে এগিয়ে চলে। - ব্যবহার: ব্যবহারকারী বিভিন্ন ফিল্ডের মান পেতে পারেন।
উদাহরণ:
awk '{print $1, $3}' filename.txt
৩. NR
- বর্ণনা: এটি মোট প্রক্রিয়া করা রেকর্ডের সংখ্যা নির্দেশ করে।
- ব্যবহার:
NRব্যবহার করে আপনি কতটি লাইন প্রক্রিয়া করা হয়েছে তা জানতে পারেন। উদাহরণ:
awk '{print NR, $0}' filename.txtএখানে প্রতিটি লাইনের সাথে তার লাইন নম্বর প্রদর্শিত হবে।
৪. NF
- বর্ণনা: এটি বর্তমান রেকর্ডের মোট ফিল্ডের সংখ্যা নির্দেশ করে।
- ব্যবহার:
NFব্যবহার করে আপনি জানতে পারেন একটি রেকর্ডে মোট কতটি ফিল্ড আছে। উদাহরণ:
awk '{print NF}' filename.txtএখানে প্রতিটি লাইনে ফিল্ডের সংখ্যা প্রদর্শিত হবে।
৫. FILENAME
- বর্ণনা: এটি বর্তমানে প্রক্রিয়া করা ফাইলের নাম নির্দেশ করে।
- ব্যবহার:
FILENAMEব্যবহার করে জানতে পারেন কোন ফাইলের সাথে কাজ করা হচ্ছে। উদাহরণ:
awk '{print FILENAME, $0}' filename.txt
৬. FS
- বর্ণনা: এটি ইনপুট ফাইলের ফিল্ড সেপারেটরের জন্য ব্যবহৃত হয়। ডিফল্টরূপে এটি স্পেস বা ট্যাব।
- ব্যবহার:
FSব্যবহার করে আপনি ফিল্ড সেপারেটর পরিবর্তন করতে পারেন। উদাহরণ:
awk 'BEGIN {FS=","} {print $1}' filename.csv
৭. OFS
- বর্ণনা: এটি আউটপুট ফিল্ড সেপারেটর নির্দেশ করে। এটি আউটপুটে ফিল্ডগুলির মধ্যে ব্যবহৃত হবে।
- ব্যবহার:
OFSব্যবহার করে আউটপুটের ফিল্ডগুলির মধ্যে স্পেস, কমা, বা অন্য কোনো চিহ্ন ব্যবহার করা যায়। উদাহরণ:
awk 'BEGIN {OFS=";"} {print $1, $2}' filename.txt
৮. ORS
- বর্ণনা: এটি আউটপুট রেকর্ড সেপারেটর নির্দেশ করে, যা রেকর্ডগুলির মধ্যে ব্যবহৃত হবে।
- ব্যবহার:
ORSপরিবর্তন করে, আপনি আউটপুট রেকর্ডগুলির মধ্যে ব্যবধান পরিবর্তন করতে পারেন। উদাহরণ:
awk 'BEGIN {ORS=" | "} {print $0}' filename.txt
৯. RS
- বর্ণনা: এটি ইনপুট রেকর্ড সেপারেটরের জন্য ব্যবহৃত হয়। ডিফল্টরূপে এটি নতুন লাইন।
- ব্যবহার:
RSব্যবহার করে আপনি কীভাবে ইনপুট ডেটা রেকর্ডে বিভক্ত হবে তা নির্ধারণ করতে পারেন। উদাহরণ:
awk 'BEGIN {RS=","} {print}' filename.txt
AWK এর এই বিল্ট-ইন ভেরিয়েবলগুলি ব্যবহার করে আপনি ডেটা প্রসেসিং এবং বিশ্লেষণের কাজকে আরও সহজ ও কার্যকর করতে পারেন। প্রতিটি ভেরিয়েবল তার নিজস্ব উদ্দেশ্য পূরণের জন্য ডিজাইন করা হয়েছে এবং এগুলি AWK এর ক্ষমতা বাড়াতে সহায়ক।
AWK এ ডেটা বিশ্লেষণের জন্য Field Separator (FS) এবং Record Separator (RS) অত্যন্ত গুরুত্বপূর্ণ ধারণা। FS এবং RS ব্যবহার করে ব্যবহারকারী ডেটা সংগ্রহ, বিশ্লেষণ এবং প্রক্রিয়া করতে পারে। এখানে FS এবং RS এর ব্যাখ্যা এবং তাদের ব্যবহার নিয়ে আলোচনা করা হবে।
Field Separator (FS)
Field Separator (FS) হল একটি বিশেষ চিহ্ন যা AWK কে নির্দেশ করে যে একটি রেকর্ডের মধ্যে ফিল্ডগুলি (বা কলাম) কীভাবে পৃথক হবে। ডিফল্টরূপে, AWK স্পেস এবং ট্যাবকে ফিল্ড সেপারেটর হিসেবে বিবেচনা করে, তবে ব্যবহারকারী নিজের প্রয়োজন অনুযায়ী FS সেট করতে পারেন।
FS এর ব্যবহার:
- ডেটা প্রসেসিং: FS ব্যবহার করে, ব্যবহারকারী ডেটার কলাম অনুযায়ী বিশ্লেষণ করতে পারেন। উদাহরণস্বরূপ, CSV (Comma-Separated Values) ফাইলের জন্য কমা (
,) একটি সাধারণ ফিল্ড সেপারেটর। - শর্ত অনুযায়ী ফিল্ড নির্বাচন: ব্যবহারকারীরা FS সেট করে নির্দিষ্ট ফিল্ডগুলি নির্বাচন এবং প্রক্রিয়া করতে পারেন।
উদাহরণ:
ধরা যাক, একটি CSV ফাইলের নাম data.csv রয়েছে:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicagoএই ফাইলটি AWK দিয়ে প্রসেস করার জন্য FS হিসাবে কমা ব্যবহার করা যেতে পারে:
awk -F, '{print $1, $2}' data.csvএখানে -F, কমা কে ফিল্ড সেপারেটর হিসেবে সেট করে, এবং এটি name এবং age প্রিন্ট করবে।
Record Separator (RS)
Record Separator (RS) হল একটি বিশেষ চিহ্ন যা AWK কে নির্দেশ করে যে একটি রেকর্ড (বা লাইনের শেষ) কীভাবে চিহ্নিত হবে। ডিফল্টরূপে, AWK নতুন লাইন (\n) কে রেকর্ড সেপারেটর হিসেবে ব্যবহার করে। ব্যবহারকারী অন্য কোনো চিহ্ন ব্যবহার করতে চাইলে RS সেট করতে পারেন।
RS এর ব্যবহার:
- মাল্টি-লাইন ডেটা: RS ব্যবহার করে, ব্যবহারকারী মাল্টি-লাইন ডেটা ফাইলগুলোকে একাধিক রেকর্ডে বিভক্ত করতে পারেন। এটি বিশেষ করে তখন উপকারী হয় যখন ডেটা ব্লক হিসাবে থাকে।
- ডেটার প্রক্রিয়াকরণ: RS পরিবর্তন করে ব্যবহারকারী রেকর্ডের বিভাজন কাস্টমাইজ করতে পারেন, যা ডেটার প্রক্রিয়াকরণে সহায়তা করে।
উদাহরণ:
ধরা যাক, একটি ফাইলের নাম records.txt রয়েছে:
Record 1
Data A
Data B
Record 2
Data C
Data Dএখন, RS হিসাবে দুটি নতুন লাইনের (বা অন্য কোনো চিহ্ন) ব্যবহার করে রেকর্ডগুলো আলাদা করা যেতে পারে:
awk -v RS="" '{print $1}' records.txtএখানে -v RS="" নির্দেশ করে যে দুটি নতুন লাইন একটি রেকর্ডের সমাপ্তি নির্দেশ করে। এটি Record 1 এবং Record 2 এর মতো ব্লককে আলাদা করে প্রক্রিয়াকরণ করবে।
সারসংক্ষেপ
AWK এ Field Separator (FS) এবং Record Separator (RS) ডেটা বিশ্লেষণের জন্য গুরুত্বপূর্ণ উপাদান। FS ব্যবহার করে ফিল্ডগুলি পৃথক করা হয় এবং RS ব্যবহার করে রেকর্ডগুলিকে আলাদা করা হয়। এই দুটি ধারণা ব্যবহার করে AWK ব্যবহারকারীরা তাদের ডেটার উপর কার্যকরভাবে বিশ্লেষণ এবং প্রক্রিয়াকরণ করতে সক্ষম হন, যা তাদের কাজকে আরও সহজ এবং কার্যকর করে।
Read more